Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT PCIKernel;
INTERFACE
{$ENDC}
{$IFC UNDEFINED __PCIKERNEL__}
{$SETC __PCIKERNEL__ := 1}
{$I+}
{$SETC PCIKernelIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED __TYPES__}
{$I Types.p}
{$ENDC}
{$IFC UNDEFINED __SYNCHRONIZATION__}
{$I Synchronization.p}
{$ENDC}
{$IFC UNDEFINED __NAMEREGISTRY__}
{$I NameRegistry.p}
{$ENDC}
{$IFC UNDEFINED __INTERRUPTS__}
{$I Interrupts.p}
{$ENDC}
{$IFC UNDEFINED __IOITERATOR__}
{$I IOIterator.p}
{$ENDC}
{$PUSH}
{$ALIGN MAC68K}
{$LibExport+}
{$IFC FOR_SYSTEM8_PREEMPTIVE }
TYPE
PCIConfigAddress = LogicalAddress;
PCIIOAddress = LogicalAddress;
FUNCTION PCIConfigReadByte(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; VAR value: UInt8): OSStatus; C;
FUNCTION PCIConfigReadWord(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; VAR value: UInt16): OSStatus; C;
FUNCTION PCIConfigReadLong(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; VAR value: UInt32): OSStatus; C;
FUNCTION PCIConfigWriteByte(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; value: ByteParameter): OSStatus; C;
FUNCTION PCIConfigWriteWord(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; value: UInt16): OSStatus; C;
FUNCTION PCIConfigWriteLong(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; value: UInt32): OSStatus; C;
FUNCTION PCIIOReadByte(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; VAR value: UInt8): OSStatus; C;
FUNCTION PCIIOReadWord(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; VAR value: UInt16): OSStatus; C;
FUNCTION PCIIOReadLong(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; VAR value: UInt32): OSStatus; C;
FUNCTION PCIIOWriteByte(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; value: ByteParameter): OSStatus; C;
FUNCTION PCIIOWriteWord(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; value: UInt16): OSStatus; C;
FUNCTION PCIIOWriteLong(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; value: UInt32): OSStatus; C;
FUNCTION PCIIntAckReadByte(VAR entry: RegEntryRef; VAR value: UInt8): OSStatus; C;
FUNCTION PCIIntAckReadWord(VAR entry: RegEntryRef; VAR value: UInt16): OSStatus; C;
FUNCTION PCIIntAckReadLong(VAR entry: RegEntryRef; VAR value: UInt32): OSStatus; C;
FUNCTION PCISpecialCycleWriteLong(VAR entry: RegEntryRef; value: UInt32): OSStatus; C;
FUNCTION PCISpecialCycleBroadcastLong(value: UInt32): OSStatus; C;
{ IOIteration model definitions for the PCI Family }
TYPE
PCIIOIteratorDataPtr = ^PCIIOIteratorData;
PCIIOIteratorData = RECORD
IOCI: IOCommonInfo;
Name: PACKED ARRAY [0..31] OF CHAR;
Domain: UInt32;
BusNumber: UInt32;
ConfigAddress: UInt32;
END;
{ get all pci device found }
FUNCTION PCIGetDeviceData(requestItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
{ get all pci device by a certain name }
FUNCTION PCINameGetDeviceData(Name: CStringPtr; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
{ get all pci device belonging to a certain domain }
FUNCTION PCIDomainGetDeviceData(Domain: UInt32; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
{ get all pci devices belonging to a certain bus }
FUNCTION PCIBusNumberGetDeviceData(BusNumber: UInt32; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
{ get a pci devices by its config address }
FUNCTION PCIConfigAddressGetDeviceData(ConfigAddress: PCIConfigAddress; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
{ bridge interrupt handler call }
FUNCTION PCILookupParentMember(theSet: InterruptSetID; VAR theParentSetMember: InterruptSetMember): OSStatus; C;